﻿#Region "IMPORTS"

Imports DAO

#End Region

Public Class FormaPagamentoDao
    Inherits DAO(Of FormaPagamento)


#Region "CONSTRUTOR(S)"

    Public Sub New()
        MyBase.New()
    End Sub

#End Region

#Region "METODOS ABSTRATOS"

    Protected Overrides Sub ValidarInsert(modelo As FormaPagamento)

        Dim NHQL As String = "from FormaPagamento as fm where fm.Descricao  = '" & modelo.Descricao & "'"
        Dim list As IList = Me.Find(NHQL)
        If list.Count > 0 Then
            Throw New Exception("Já existe uma Forma de Pagamento com esta Descrição!")
        End If
    End Sub

    Protected Overrides Sub ValidarDelete(modelo As FormaPagamento)
        Dim NHQL As String = "from CondicaoPagamento as cp where cp.FormaPagamento.FormaPagamentoId  = " & modelo.FormaPagamentoId
        Dim list As IList = Me.Find(NHQL)
        If list.Count > 0 Then
            Throw New Exception("Esta Forma de Pagamento não pode ser excluida! No ela momento está sendo utilizada por uma Condição de Pagamento!")
        End If
    End Sub

    Protected Overrides Sub ValidarUpdate(ByVal modelo As FormaPagamento)

        Dim NHQL As String = "from FormaPagamento as fm where fm.Descricao  = '" & modelo.Descricao & "' AND fm.FormaPagamentoId != " & modelo.FormaPagamentoId
        Dim list As IList = Me.Find(NHQL)
        If list.Count > 0 Then
            Throw New Exception("Já existe uma Forma de Pagamento com esta Descrição!")
        End If

    End Sub

#End Region
End Class
